using System;

namespace Weever.Json.Serialization.v1.Tests
{
    public class ComplexType
    {
        private int _intValue;

        [JsonName("intValue")]
        public int IntValue
        {
            get { return _intValue; }
            set { _intValue = value; }
        }

        [JsonName("nullableIntValue")]
        public int? NullableIntValue
        {
            get { return _nullableIntValue; }
            set { _nullableIntValue = value; }
        }

        private int? _nullableIntValue;

        private ComplexType _complexValue;

        [CamelCase]
        public ComplexType ComplexValue
        {
            get { return _complexValue; }
            set { _complexValue = value; }
        }

        private Version _versionValue;

        [CamelCase]
        public Version VersionValue
        {
            get { return _versionValue; }
            set { _versionValue = value; }
        }

        private int[] _intArrayValue;

        [JsonName("intArrayValue")]
        public int[] IntArrayValue
        {
            get { return _intArrayValue; }
            set { _intArrayValue = value; }
        }

        [JsonName("stringValue")]
        public string StringValue
        {
            get { return _stringValue; }
            set { _stringValue = value; }
        }

        private string _stringValue;
    }
}
